Theinvention relates to a data carrier having a processing device, a communication device for exchanging data with an external unit, and a memory device containing at least one application program. A known data carrier of this kind is the smart card, which is used in an increasing number of applications. This development is driven by the ever growing efficiency of the processor systems realizable in the chips. Whereas smart cards could hitherto only perform functions predefined by the card manufacturer, current chip architecture fundamentally permits a user to implement functions subsequently. However, permitting such user implementations involves the risk of reducing the functional safety of a smart card when the functions are implemented by means of runnable programs which the operating system of the card can directly execute. Such runnable programs directly access basic card functions, allowing manipulation or disturbance thereof. To overcome this difficulty it is recommendable to use operational concepts involving the storage of interaction files which are converted into executable statements by an interpreter unit. An especially current concept of this kind is known under the brand name JAVA and specified in the publications of xe2x80x9cThe JAVA Series,xe2x80x9d published by Addison/Wesley. JAVA contains an object-oriented programming language and a processor unit realized in software and called a virtual machine. The virtual machine is part of the processor unit for which an application program is intended. The program exists in a class file format into which the underlying JAVA program was converted by compilation. During execution of a program, the virtual machine performs numerous security tests. In addition it controls the intervention of program statements in the basic functions of the processor system. In this way once can prevent application programs from impairing the operations safety of the processor unit.
It has also been proposed to use the JAVA concept for smart cards. However, use in smart cards is limited by the comparatively great storage requirement for the interaction programs and the virtual machine, and the slow execution of the programs due to the object orientation.
The invention is based on the problem of stating a data carrier suitable for implementation of application programs by a user and having the same operational safety as the JAVA concept but managing with smaller programs and executing them faster.
This problem is solved by a data carrier having the features of the main claim. An inventive data carrier has the advantage that interaction contexts generated by a user require less storage space than customary programs based on class files as are provided in particular for virtual JAVA machines. Due to its pronounced structuring the interpreter unit can execute them much faster. These advantages are obtained by introducing a number-based referencing system to replace the textual referencing otherwise customary. The basis for this is the finding that the referencing space identifiable by numbers suffices for many purposes, in particular ones in conjunction with smart card applications. An inventive data carrier does not require fundamental reconstruction of an interpreter unit. Advantageously, the inventive interaction file structure instead allows all security tests known from JAVA to be adopted without restriction so as to absolutely ensure the operational safety of the data carrier with respect to its basic functions.
An especially advantageous development of the proposed data carrier provides for systematically giving the packets simplified identification in the form of a short identification number, recording the identification system in a table and using it within a packet for referencing the totality of packets.
Very advantageously, number designations are further also used for the methods and attributes occurring in a packet.